A kernel is a computer program that manages input/output requests from software and translates them into data processing instructions for the central processing unit. When a computer program (called a process) makes a request of the kernel, that request is called a system call.
Virtual memory is a memory management technique that is implemented using both hardware and software. It maps memory addresses used by a program, called virtual addresses, into physical addresses in computer memory. Because of the virtual addresses, main storage, as communicated by a process or task, appears as a contiguous address space or collection of contiguous segments. A virtual memory manager manages virtual address spaces and the assignment of real memory to virtual memory. Address translation hardware in the CPU (central processing unit), often referred to as a memory management unit or MMU, automatically translates virtual addresses to physical addresses. The primary benefits of virtual memory include: (i) freeing applications from having to manage a shared memory space, (ii) increased security due to memory isolation, and (iii) ability to conceptually use more memory than might be physically available, using the technique of paging.
At a very high level, klock pages are the kernel pages that are “stolen” by the Virtual Memory Manager (VMM) in certain UNIX type operating systems, only after other user space pages and other non-klocked pages are stolen by it. K-lock stands for kernel-locked. The operation of retrieving a high priority page (called a “klock page”), by a computer processor, will have a certain amount of performance overhead associated with it.
A memory sharing environment (such as Active Memory Sharing (“AMS”)) is any environment where non-volatile storage medium (for example, disk storage) is at least partially substituted for storage that would normally take place in a volatile memory. For example, in a memory sharing environment, klock pages may be stored on, and retrieved from, a non-volatile storage medium.